home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 June / Macworld (1999-06).dmg / Serious Software / Masterapp demo / masterapp.dir / 00002_Script_Most of the code < prev    next >
Text File  |  1999-03-17  |  4KB  |  178 lines

  1. -- MasterApp example code
  2. --
  3. ----- Initialization ---------------------
  4.  
  5. on startMovie
  6.   eraseFields
  7.   checkForXtras  
  8.   initMasterApp("demo")
  9. end
  10.  
  11. on eraseFields
  12.   repeat with nam in ["currentFile","status","Task List","Task Name","Task ID","Task Parent"]
  13.     put "" into field nam
  14.   end repeat
  15. end
  16.  
  17. on checkForXtras
  18.   if not xtracheck("FileIO") then
  19.     alert "This demo requires the FileIO Xtra to work"
  20.   end if
  21.   if not xtracheck("MasterApp") then
  22.     alert "This demo requires the MasterApp Xtra to work"
  23.   end if
  24. end
  25.  
  26. on xtracheck xtraName
  27.   -- check if an xtra is present
  28.   set flag = 0
  29.   repeat with a = 1 to the number of Xtras
  30.     if the name of xtra a = xtraName then
  31.       set flag = 1 
  32.     end if
  33.   end repeat
  34.   return flag
  35. end
  36.  
  37. on initMasterApp serialNumber
  38.   -- Initializes and registers the Xtra
  39.   -- Call this once from startMovie handler of first movie.
  40.   -- 
  41.   -- serialNumber: string containing serialNumber or "demo"
  42.   --
  43.   -- EX: initMasterApp("demo")
  44.   -- EX: initMasterApp("37483294827kio")
  45.   --
  46.   if serialNumber <> "demo" then
  47.     register(xtra "MasterApp", serialNumber)
  48.   end if 
  49. end
  50.  
  51. --------------------------------------------
  52. -- When user clicks on task list field, put
  53. -- task info in fields to right
  54.  
  55. on clickLine lineText
  56.   -- put information from line user clicked on screen
  57.   --
  58.   global taskID
  59.   set the itemDelimiter = ","
  60.   clearTaskInfo
  61.   set taskID = value(item 2 of lineText)
  62.   set taskName = item 1 of lineText
  63.   set taskParent = item 3 of lineText
  64.   refreshTaskInfo(taskName,taskID,taskParent)
  65. end
  66.  
  67. on clearTaskInfo
  68.   global taskID
  69.   set taskID = 0
  70.   put "" into field "Task Name"
  71.   put "" into field "Task ID"
  72.   put "" into field "Task Parent"
  73. end
  74.  
  75. on refreshTaskInfo taskName,taskID,taskParent
  76.   put taskName into field "Task Name"
  77.   put taskID into field "Task ID"
  78.   put taskParent into field "Task Parent"
  79. end
  80.  
  81. ---------------------------------------------
  82.  
  83. on feedProcess waitTicks
  84.   -- Make Director give over the specified processing time to allow
  85.   -- other tasks to process
  86.   --
  87.   -- EX: feedProcess(30)
  88.   --
  89.   set waitOver = the ticks + waitTicks
  90.   repeat while the ticks < waitOver
  91.     mappfeedGenericTimeSlice
  92.   end repeat
  93. end
  94.  
  95. ------------------- Buttons ------------------
  96.  
  97. on pickFileButton
  98.   -- Use FileIO's displayOpen dialog to pick a file to work with
  99.   --
  100.   set y = new(xtra "FileIO")
  101.   set filePath = displayOpen(y)
  102.   put filePath into field "currentFile"
  103.   set y = 0
  104. end
  105.  
  106. on updateTaskListButton
  107.   -- get list of currently running processes
  108.   --
  109.   set tasks = mappgetTaskList() 
  110.   put tasks into field "Task List"
  111. end
  112.  
  113. on launchButton
  114.   -- launch an application
  115.   --
  116.   set filePath = field "currentFile"
  117.   set err = mapplaunch(filePath,"")
  118.   put checkErr("launch",err) into field "status"
  119. end
  120.  
  121. on openDocButton
  122.   -- open a document with its associated application
  123.   --
  124.   set filePath = field "currentFile"
  125.   set err = mappopenDocument(filePath)
  126.   put checkErr("openDocument",err) into field "status"
  127. end
  128.  
  129. on printDocButton
  130.   -- open a document with its associated application
  131.   -- and print it
  132.   --
  133.   set filePath = field "currentFile"
  134.   set err = mappprintDocument(filePath)
  135.   put checkErr("printDocument",err) into field "status"
  136. end
  137.  
  138. on launchHiddenButton
  139.   -- launch but don't show an application
  140.   --
  141.   set filePath = field "currentFile"
  142.   set err = mapplaunchHidden(filePath,"")
  143.   put checkErr("launchHidden",err) into field "status"
  144. end
  145.  
  146. on locateExecutableButton
  147.   -- return path to an application from name
  148.   --
  149.   set appName = field "currentFile"
  150.   set path = mapplocateExecutable(appname)
  151.   put path into field "status"
  152. end
  153.  
  154. on quitTaskButton
  155.   -- close the application's main window on Win to quit
  156.   -- or use rudeQuit on Mac to quit
  157.   --
  158.   global taskID
  159.   if taskID <> 0 and not(voidP(taskID)) then
  160.     if the machineType = 256 then
  161.       set taskWindowlist = mappgetTaskWindowIDs(taskID)
  162.       -- main window of app usually the first one
  163.       set mainWindow = value(word 1 of taskWindowList)
  164.       mappwindowToFront(mainWindow)
  165.       mappcloseWindow(mainWindow)
  166.       -- give process time to quit
  167.       feedProcess(30)
  168.     else
  169.       mapptaskToFront(taskID)
  170.       -- make sure app has focus before quit
  171.       feedProcess(30)
  172.       mapprudeQuitTask(taskID,0)
  173.       -- give process time to quit
  174.       feedProcess(30)
  175.     end if
  176.   end if
  177. end
  178.